Skip to content

Update for model registry operator#125

Merged
typhoonzero merged 4 commits intomasterfrom
update_model_registry_install_with_operator
Mar 12, 2026
Merged

Update for model registry operator#125
typhoonzero merged 4 commits intomasterfrom
update_model_registry_install_with_operator

Conversation

@typhoonzero
Copy link
Contributor

@typhoonzero typhoonzero commented Mar 5, 2026

Summary by CodeRabbit

  • Documentation
    • Switched Model Registry install docs from Helm chart to OperatorHub/operator flow; added operator install and ModelRegistry instance creation steps, expanded instance parameters (Name, Namespace, MySQL storage class/size, DisplayName, Description), namespace/UI notes, authorization policy placeholder, and support for multiple instances.
    • Added Kubeflow how-to guides: Model Registry (UI/Python/KServe examples), Notebooks, Pipelines, TensorBoards, Volumes & KServe, overview and intro pages.
    • Noted Kubeflow Trainer v2 Kubernetes minimum (>= 1.32.3).

@coderabbitai
Copy link

coderabbitai bot commented Mar 5, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 51f2e88f-a830-446e-b5d7-7b81bc84f20d

📥 Commits

Reviewing files that changed from the base of the PR and between 41f7007 and 1439247.

📒 Files selected for processing (1)
  • docs/en/kubeflow/how_to/volumes-kserve.mdx
🚧 Files skipped from review as they are similar to previous changes (1)
  • docs/en/kubeflow/how_to/volumes-kserve.mdx

Walkthrough

Replaces chart-based Model Registry deployment with an OperatorHub/operator workflow, adds ModelRegistry instance creation steps and parameters, updates namespace/visibility and authorization notes, and adds multiple new Kubeflow how-to docs (pipelines, notebooks, model-registry, tensorboards, volumes-kserve) plus index/intro pages. Kubeflow Trainer v2 minimum Kubernetes version note added.

Changes

Cohort / File(s) Summary
Installation doc
docs/en/installation/kubeflow.mdx
Replaces Helm chart references with the Model Registry Operator (model-registry-operator); shifts deployment flow to OperatorHub/MarketPlace; adds steps to install the operator and create a ModelRegistry instance with parameters (Name, Namespace, MySQL storage class/size, DisplayName, Description); updates namespace binding, UI visibility, and authorization policy placeholder notes; adds Kubeflow Trainer v2 Kubernetes version note.
Model Registry how-to
docs/en/kubeflow/how_to/model-registry.mdx
New guide: UI access prerequisites, registering models via UI and Python client (S3 examples), registry connection examples, retrieving model/version/artifact metadata, and deploying a registered model to KServe (InferenceService example).
Notebooks how-to
docs/en/kubeflow/how_to/notebooks.mdx
New guide: Notebook Server concepts, creation/configuration steps, custom images, PodDefault examples, kernel/env setup, storage and object storage access, and lifecycle/resource best practices.
Pipelines how-to
docs/en/kubeflow/how_to/pipelines.mdx
New guide: KFP SDK install, object storage ConfigMap example (defaultPipelineRoot, providers), quick start pipeline example, compile/submit run, and UI management instructions.
Tensorboards how-to
docs/en/kubeflow/how_to/tensorboards.mdx
New guide: running TensorBoard in Kubeflow, prerequisites (PVC/object store), example log generation, creating/configuring TensorBoard instances, access and cleanup.
Volumes & KServe how-to
docs/en/kubeflow/how_to/volumes-kserve.mdx
New guide: managing PVCs, attaching volumes to notebooks, deploying/testing KServe InferenceService endpoints, and UI workflows (create, attach, delete, view).
Index & Intro pages
docs/en/kubeflow/index.mdx, docs/en/kubeflow/intro.mdx
New top-level Kubeflow index and intro pages with frontmatter, overview component, integration summary, and note to set namespace PSA to privileged for Kubeflow components.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • Add kubeflow deploy doc #95: Prior edits to Kubeflow installation docs that add chart-based Model Registry deployment flow which this PR replaces with an operator-based workflow.

Suggested reviewers

  • zhaomingkun1030

Poem

🐇 I hopped through pages, ink and light,
Charts swapped out for operators bright,
Namespaces snug, registries wake,
Pipelines, notebooks — docs awake,
A tiny hop, a joyous bite.

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Title check ⚠️ Warning The title 'Update for model registry operator' refers to a real aspect of the changeset, but it does not accurately represent the full scope of changes. While the title focuses on the model registry operator, the PR also adds comprehensive new documentation for Kubeflow Notebooks, Pipelines, TensorBoards, KServe, and general Kubeflow introduction, which constitute the majority of the changes. Consider a more accurate title like 'Add comprehensive Kubeflow documentation and update Model Registry to use operator' to reflect the broader scope of documentation additions alongside the model registry operator migration.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch update_model_registry_install_with_operator

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/en/installation/kubeflow.mdx`:
- Line 217: The docs assume `<model-registry-name>` is known but Kubeflow may
create AuthorizationPolicy resources with different names (e.g.,
`ns-owner-access-istio`), causing "resource not found"; update the instruction
to first list AuthorizationPolicy resources in the target namespace using
`kubectl -n <your-namespace> get authorizationpolicy` to discover the actual
resource name and then run the edit command using that discovered
AuthorizationPolicy resource name (i.e., replace `<model-registry-name>` with
the name returned by the get command).

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 717dc992-d273-48f0-8eb6-16ff3a93dc83

📥 Commits

Reviewing files that changed from the base of the PR and between b451348 and 19dc4fd.

📒 Files selected for processing (1)
  • docs/en/installation/kubeflow.mdx

**Note: After the Model Registry instance starts, refresh the Model Registry menu in the left navigation of the Kubeflow page to see the instance deployed in the above steps. Before deploying the first instance, the Kubeflow Model Registry interface will display empty.**

**Note: The Model Registry instance will restrict network requests from non-current namespaces. If you need to allow more namespaces to access, you need to manually modify `kubectl -n <your-namespace> edit authorizationpolicy model-registry-service` and according to the istio documentation, add the namespaces that are allowed to access.**
**Note: The Model Registry instance will restrict network requests from non-current namespaces. If you need to allow more namespaces to access, you need to manually modify `kubectl -n <your-namespace> edit authorizationpolicy <model-registry-name>` and according to the istio documentation, add the namespaces that are allowed to access.**
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

# First, check if the file exists and view the context around line 217
git ls-files docs/en/installation/kubeflow.mdx

Repository: alauda/aml-docs

Length of output: 92


🏁 Script executed:

# View the specific line and surrounding context
sed -n '210,225p' docs/en/installation/kubeflow.mdx

Repository: alauda/aml-docs

Length of output: 1554


🌐 Web query:

Kubeflow model-registry-operator AuthorizationPolicy naming convention

💡 Result:

In Kubeflow (including when accessing Model Registry through Istio), the Profile controller / KFAM uses these Istio AuthorizationPolicy naming conventions:

  • Profile owner policy: ns-owner-access-istio (kubeflow.org)
  • Contributor policy (edit/view): user-<SAFE_USER_EMAIL>-clusterrole-<USER_ROLE> (kubeflow.org)
    • <SAFE_USER_EMAIL> = user email lowercased, with special characters replaced by - (kubeflow.org)
    • <USER_ROLE> = edit or view (kubeflow.org)

Citations:


🌐 Web query:

Kubeflow model-registry ModelRegistry CRD AuthorizationPolicy resource relationship

💡 Result:

  • They’re different layers and don’t “point to” each other.

    • ModelRegistry is a Kubernetes Custom Resource (CR) (backed by a ModelRegistry CRD in operator-style installs) that a controller reconciles into the runtime resources (Deployment/Service/etc.) for a Model Registry instance. (github.com)
    • AuthorizationPolicy is an Istio security resource that controls which authenticated/identified callers can reach workloads (typically at the namespace/workload level). In Kubeflow, Profiles create per-namespace Istio AuthorizationPolicy objects for the owner and contributors. (kubeflow.org)
  • Where the “relationship” shows up in practice (Kubeflow multi-user):

    1. Kubeflow recommends installing Model Registry into a user Profile namespace (not the shared kubeflow namespace) so it fits Kubeflow’s multi-user isolation model. (kubeflow.org)
    2. A Profile namespace automatically gets Istio AuthorizationPolicy objects (e.g., ns-owner-access-istio, and per-contributor policies). These policies commonly apply namespace-wide (no workload selector), so they effectively govern access to all services in that namespace, including the Model Registry API/UI you deployed there. (kubeflow.org)
  • So: the ModelRegistry CR/CRD creates the Model Registry workloads; the Profile-created Istio AuthorizationPolicy restricts network access to those workloads—without any explicit ownerReference or direct linkage between the two resource kinds. (github.com)

Citations:


Clarify the AuthorizationPolicy identification step to prevent command failures.

The documentation assumes <model-registry-name> is the AuthorizationPolicy resource name, but Kubeflow's Profile controller generates AuthorizationPolicy with different naming conventions (e.g., ns-owner-access-istio). Users following this instruction verbatim will encounter a "resource not found" error. Add a step to identify the correct AuthorizationPolicy before editing:

kubectl -n <your-namespace> get authorizationpolicy

Then use the actual resource name in the edit command.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/en/installation/kubeflow.mdx` at line 217, The docs assume
`<model-registry-name>` is known but Kubeflow may create AuthorizationPolicy
resources with different names (e.g., `ns-owner-access-istio`), causing
"resource not found"; update the instruction to first list AuthorizationPolicy
resources in the target namespace using `kubectl -n <your-namespace> get
authorizationpolicy` to discover the actual resource name and then run the edit
command using that discovered AuthorizationPolicy resource name (i.e., replace
`<model-registry-name>` with the name returned by the get command).

@cloudflare-workers-and-pages
Copy link

cloudflare-workers-and-pages bot commented Mar 5, 2026

Deploying alauda-ai with  Cloudflare Pages  Cloudflare Pages

Latest commit: 1439247
Status: ✅  Deploy successful!
Preview URL: https://566400f0.alauda-ai.pages.dev
Branch Preview URL: https://update-model-registry-instal.alauda-ai.pages.dev

View logs

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

♻️ Duplicate comments (1)
docs/en/installation/kubeflow.mdx (1)

217-217: ⚠️ Potential issue | 🟡 Minor

Use the actual AuthorizationPolicy name here, not the ModelRegistry name.

This command still assumes <model-registry-name> is the policy resource name, but Kubeflow profile namespaces typically use different AuthorizationPolicy names. Readers will hit NotFound unless you first show them how to discover the policy, for example with kubectl -n <your-namespace> get authorizationpolicy, and then edit the returned name.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/en/installation/kubeflow.mdx` at line 217, The docs currently instruct
editing `authorizationpolicy <model-registry-name>` but uses the ModelRegistry
name which is often incorrect; update the text to tell users to first discover
the actual AuthorizationPolicy resource name (e.g., run `kubectl -n
<your-namespace> get authorizationpolicy`) and then edit that returned resource
(reference the `AuthorizationPolicy` kind and the `kubectl -n <your-namespace>
edit authorizationpolicy <policy-name>` command), replacing
`<model-registry-name>` with the discovered `<policy-name>` so readers won’t get
NotFound errors.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/en/kubeflow/how_to/pipelines.mdx`:
- Around line 43-46: Replace the hardcoded namespace value under
metadata.namespace in the kfp-launcher manifest (currently "wy-testns") with a
clear placeholder like "<your-profile-namespace>" and update the surrounding
text to state explicitly that this value must match the namespace where Pipeline
runs execute so the kfp-launcher ConfigMap is visible to those runs.

In `@docs/en/kubeflow/intro.mdx`:
- Line 10: The note currently instructs setting the namespace PSA to privileged
for Kubeflow broadly; change the wording to avoid recommending a blanket
namespace-wide privileged PSA by scoping the guidance to only the specific
workloads that require lower PSA (e.g., creating Notebook instances) and/or list
the minimal PSA setting per component; update the sentence that mentions
"namespace PSA to privileged" to instead reference targeted workloads (for
example "set PSA to privileged for the Notebook instance namespace or the
specific pod/service account that requires elevated permissions") and add a
brief pointer to the installation guide or a short table describing the minimal
PSA requirement for each Kubeflow component.

---

Duplicate comments:
In `@docs/en/installation/kubeflow.mdx`:
- Line 217: The docs currently instruct editing `authorizationpolicy
<model-registry-name>` but uses the ModelRegistry name which is often incorrect;
update the text to tell users to first discover the actual AuthorizationPolicy
resource name (e.g., run `kubectl -n <your-namespace> get authorizationpolicy`)
and then edit that returned resource (reference the `AuthorizationPolicy` kind
and the `kubectl -n <your-namespace> edit authorizationpolicy <policy-name>`
command), replacing `<model-registry-name>` with the discovered `<policy-name>`
so readers won’t get NotFound errors.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: cadb0e88-1150-4be6-94e6-b5b9dca96930

📥 Commits

Reviewing files that changed from the base of the PR and between 19dc4fd and bc0aabd.

📒 Files selected for processing (8)
  • docs/en/installation/kubeflow.mdx
  • docs/en/kubeflow/how_to/model-registry.mdx
  • docs/en/kubeflow/how_to/notebooks.mdx
  • docs/en/kubeflow/how_to/pipelines.mdx
  • docs/en/kubeflow/how_to/tensorboards.mdx
  • docs/en/kubeflow/how_to/volumes-kserve.mdx
  • docs/en/kubeflow/index.mdx
  • docs/en/kubeflow/intro.mdx
✅ Files skipped from review due to trivial changes (3)
  • docs/en/kubeflow/how_to/tensorboards.mdx
  • docs/en/kubeflow/how_to/model-registry.mdx
  • docs/en/kubeflow/how_to/volumes-kserve.mdx

Comment on lines +43 to +46
metadata:
name: kfp-launcher
namespace: wy-testns
```
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Replace the hardcoded sample namespace before users copy this manifest.

metadata.namespace: wy-testns makes the example non-portable. If readers apply it verbatim, the kfp-launcher ConfigMap lands in the wrong namespace and Pipeline runs in their profile namespace will not see it. Use a placeholder such as <your-profile-namespace> and explicitly say it must match the namespace where the runs execute.

Suggested doc fix
 metadata:
   name: kfp-launcher
-  namespace: wy-testns
+  namespace: <your-profile-namespace>
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/en/kubeflow/how_to/pipelines.mdx` around lines 43 - 46, Replace the
hardcoded namespace value under metadata.namespace in the kfp-launcher manifest
(currently "wy-testns") with a clear placeholder like "<your-profile-namespace>"
and update the surrounding text to state explicitly that this value must match
the namespace where Pipeline runs execute so the kfp-launcher ConfigMap is
visible to those runs.


See [Kubeflow Docs](https://www.kubeflow.org/docs/) for more details about Kubeflow components and features.

> **NOTE: ** You need to set the namespace PSA to privileged in order to use Kubeflow components. Please contact your cluster administrator to set the namespace PSA to privileged if you encounter permission issues when using Kubeflow components.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Avoid documenting privileged PSA as a blanket Kubeflow prerequisite.

This note makes a namespace-wide privileged PSA level sound required for all Kubeflow components, but the installation guide in this PR only scopes PSA lowering to cases like creating Notebook instances. That can steer users toward a broader-than-necessary security posture. Narrow this to the workloads that actually need elevated permissions, or document the minimal PSA setting per component.

🧰 Tools
🪛 LanguageTool

[style] ~10-~10: Consider a more concise word here.
Context: ... to set the namespace PSA to privileged in order to use Kubeflow components. Please contact...

(IN_ORDER_TO_PREMIUM)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/en/kubeflow/intro.mdx` at line 10, The note currently instructs setting
the namespace PSA to privileged for Kubeflow broadly; change the wording to
avoid recommending a blanket namespace-wide privileged PSA by scoping the
guidance to only the specific workloads that require lower PSA (e.g., creating
Notebook instances) and/or list the minimal PSA setting per component; update
the sentence that mentions "namespace PSA to privileged" to instead reference
targeted workloads (for example "set PSA to privileged for the Notebook instance
namespace or the specific pod/service account that requires elevated
permissions") and add a brief pointer to the installation guide or a short table
describing the minimal PSA requirement for each Kubeflow component.

@YuNianan
Copy link

/test-pass

@typhoonzero typhoonzero merged commit fe48cc9 into master Mar 12, 2026
3 checks passed
typhoonzero added a commit that referenced this pull request Mar 12, 2026
* update for model registry operator

* add kubeflow quickstart docs

* update

* update
typhoonzero added a commit that referenced this pull request Mar 12, 2026
* update for model registry operator

* add kubeflow quickstart docs

* update

* update
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants